﻿# !/usr/bin/env python
# -*- coding: utf-8 -*-

'''
	Name: pseudo2.py
	Author: David Palma, 12054
	Description: Gerador de numeros Pseudo-Aleatórios
	Programa realizado na linguagem Python, mas que utiliza
	um modulo realizado em linguagem C e importa uma funcao
	que faz a geracao dos numeros aleatorios

	Opcoes de linha de comandos: python pseudo1.py [k]
	em que 'k' = a quantidade de numeros pretendidos 

	Beja, 8 de Fevereiro de 2012

	Estatisticas(segundos):
	Maquina Virtual VMWare Player: Mint 12 Gnome 32 bits
	Intel C2D 8600@2.4Ghz

	1000: 0.000000 (inferior a precisao)
	10 000: 0.000000 (inferior a precisao)
	100 000: 0.010000
	1 000 000 000: 0.050000
	10 000 000 000: 0.530000
	100 000 000 000: 5.300000
'''

from ctypes import *
import sys
import time

# Utilizacao da biblioteca ctypes para importar um dll em C
libc = CDLL("/home/user1/pseudo.so")

# Especificacao da funcao que se pretende importar
libcpseudo_rand = libc.pseudo_rand

# Interpreta a opcao do utilizador; Caso nao especifique, k = 1
k = int(sys.argv[1]) if (len(sys.argv) == 2) else 1

# Chamada da funcao em C. A cronometragem do tempo efectua-se na funcao
libcpseudo_rand(c_int(k))
